package com.wengu.rabbitmq.work;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.wengu.rabbitmq.util.ConnectionUtil;

import java.util.concurrent.TimeUnit;

/**
 * @author LoserJohn
 * @create 2020-09-07 13:37
 */
//了解
//simple消息模型的生产者：simple不需要使用exchange
public class Send {
    static final String QUEUE_NAME = "work.queue";
    public static void main(String[] args) throws Exception {
        //1、获取mq的连接
        Connection connection = ConnectionUtil.getConnection();
        //2、通过连接创建通道channel
        //基本上mq所有操作的api都封装在channel中
        Channel channel = connection.createChannel();
        //3、通过通道声明队列
        //参数1:队列名称，参数2：队列在mq服务中是否持久化，参数3：队列是否为当前通道专用，参数4：是否持久化,参数5:队列的额外参数
        channel.queueDeclare(QUEUE_NAME , false,false,false,null);
        //4、通过通道向队列中发送消息
        String message ;
        System.out.println("1111");
        for (int i = 1; i <= 50 ; i++) {
             message = "hello,simple queue" + i;
            //参数1：交换机，空字符串表示使用默认交换机，参数2：如果没有指定交换机表示队列名称，如果指定交换机表示消息路由类型
            //参数4：消息内容
            channel.basicPublish("",QUEUE_NAME , null ,message.getBytes() );
            try {
                TimeUnit.MILLISECONDS.sleep(i * 10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //5、关闭通道和连接
        channel.close();
        connection.close();
    }
}
